/*--------------------------------------------------------------------------------------+
|
|     $Source: samples/SampleDgnDbEditor/Shipping%Class%ItemHandler.h $
|
|  $Copyright: (c) 2014 Bentley Systems, Incorporated. All rights reserved. $
|
+--------------------------------------------------------------------------------------*/
#pragma once
#include "SampleDgnDbEditor.h"

//=======================================================================================
// @bsiclass                                                BentleySystems
//=======================================================================================
struct Shipping%Class%ItemHandler : PhysicalItemHandler
{
private:
    static StatusInt CreatePhysicalGeometry (PhysicalGeometryR localGeometry, double length, double diameter);

protected:
    virtual StatusInt _GetPhysicalGeometry (PhysicalGeometryR localGeometry, TransformR localToWorld, ECDbR, ECInstanceKeyCR) override;
    virtual StatusInt _GetPhysicalGeometry (PhysicalGeometryR localGeometry, IECInstanceCR) override;
    virtual StatusInt _GetInputProperties (PropertyVectorR, ECClassCR) override;
    virtual bool _CanHandleClass (ECDbCR, ECClassId) override;
    virtual ECRelationshipClassCP _GetRelationshipToTag (ECClassCR) override;

public:    
    static PhysicalItemHandlerR Get();
};
